package jus.aor.talk.v2;

import java.util.Date;

import jus.aor.talk.Message;
import jus.aor.talk.MessageSay;
import jus.aor.talk.MessageWho;
import jus.aor.talk.v2.Forum.IntervenantDescriptor;
import jus.util.assertion.Require;

public interface ForumInterface extends java.rmi.Remote {
	/**
	* abonnement au forum de discussion
	* @requireintervenantValide : intervenant!=null
	* @require etatValide : this.intervenants!=null && !intervenants.containsValue(intervenant)
	*/
	public Integer enter(IntervenantInterface intervenant, String prenom, String nom) throws Require, java.rmi.RemoteException;
	/**
	* résiliation du forum de discussion
	* @resuire idValide : this.id!=null && intervenants.containsKey(id);
	* @require etatValide : this.forum!=null
	*/
	public boolean leave(Integer id) throws Require, java.rmi.RemoteException;
	/**
	* envoi d'une participation au forum de discussion
	* @require participationValide : pariticpation!=null
	* @require idValide : this.id!=null && intervenants.containsKey(id);
	* @require etatValide : this.forum!=null
	*/
	public void say(Integer id, String participation) throws Require, java.rmi.RemoteException;
	/**
	* demande de la liste des participants au forum de discussion
	* @require idValide : this.id!=null && intervenants.containsKey(id);
	* @require etatValide : this.forum!=null
	*/
	public Message who(Integer id) throws Require, java.rmi.RemoteException;
}
